Ich bezweifel, dass der Threadstarter was mit Klassen anfangen kann.
Frage zu Php 5.6 auf php7 zu ändern bitte um Hilfe
- luiluiboy014
- Geschlossen
- Erledigt
-
-
habe das gemacht die fheler kommen immer noch
das geht nicht
Code[Wed Nov 28 18:06:44.343107 2018] [fcgid:warn] [pid 4079] [client 178.200.69.235:57807] mod_fcgid: stderr: PHP Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in $a = mysqli_query(mysqli,"SELECT * from ".$GLOBALS['$prefix']."shop_basket WHERE (memberip = '".mysqli_real_escape_string(mysqli,$_SERVER['REMOTE_ADDR'])."' OR basket ='".mysqli_real_escape_string(mysqli,$basket)."') AND status = '1' ORDER BY articlenum DESC"); $i = 0; hier linie 22 while($b = mysqli_fetch_array($a)){ extract($b);
-
Ist das gewollt oder warum steht dort immernoch mysqli statt die Connection Handler Variable?
mysqli_query(mysqli,"SELECT * f
Wenn keine gültige und aktive Datenbank Instanze existiert, gibt der Rückgabewert von mysqli_query NULL aus, das wiederrum führt zur der Fehlermeldung weil im mysqli_fetch_array Parameter NULL übergeben wurde. Im KLartext: Wenn deine Verbindung zur Datenbank besteht, hast du dieses Problem nicht mehr und du hast einen fröhlichen Tag -
also wenn ich so mache
$mysqli = mysqli_connect("$dbhost", "$dbuname", "$dbpass", "$dbname") or die(mysqli_connect_error());
$GLOBALS['sql'] = $mysqli;$a = mysqli_query(mysqli, "SELECT * from ".$GLOBALS['$prefix']."shop_basket WHERE (memberip = '".mysqli_real_escape_string(mysqli, $_SERVER['REMOTE_ADDR'])."' OR basket ='".mysqli_real_escape_string(mysqli, $basket)."') AND status = '1' ORDER BY articlenum DESC");
$i = 0;
while($b = mysqli_fetch_array($a)){
extract($b);
ist der fehler immer noch da -
$mysqli = mysqli_connect($dbhost, $dbuname, $dbpass, $dbname) or die(mysqli_connect_error());
mysqli -> $mysqliBitte lerne erstmal die Basics einer Programmiersprache...
-
Fehler ist immer noch so
$mysqli = mysqli_connect($dbhost, $dbuname, $dbpass, $dbname) or die(mysqli_connect_error());
$GLOBALS['sql'] = $mysqli;wenn das so ist
-
Ändere $a = mysqli_query(mysqli, "SELECT ...
in
$a = mysqli_query($mysqli, "SELECT ...Es fehlt einfach nur das $
Bitte. Danke. Tschüss.
-
hatte ich grade auch versucht ging nicht mach ich es jetzt jetzt geht es igend was stimmt nicht gucke aber weiter danke für den fehler behebn schon mall melde mich wieder wenn ich wieder hilfe brauch
habe noch ein problem gefunden
$abfrage = "SELECT COUNT(*) AS cartcheck FROM ".$GLOBALS['$prefix']."shop_basket WHERE (memberip='".$_SERVER['REMOTE_ADDR']."' OR basket ='".$basket."') AND status = '1'";
$ergebnis = mysqli_query($mysqli,$abfrage)
OR die("Error: $abfrage <br>".mysqli_error());
while($row = mysqli_fetch_object($ergebnis))
$cartcheck = "$row->cartcheck";$abfrage = "SELECT SUM(posts * price * paytime) AS price_sum1 FROM ".$GLOBALS['$prefix']."shop_basket WHERE (memberip='".$_SERVER['REMOTE_ADDR']."' OR basket ='".$basket."') AND status = '1'";
$ergebnis = mysqli_query($mysqli,$abfrage)
OR die("Error: $abfrage <br>".mysqli_error());
while($row = mysqli_fetch_object($ergebnis))
$price_sum1 = "$row->price_sum1";$abfrage = "SELECT SUM(posts * setup) AS price_sum2 FROM ".$GLOBALS['$prefix']."shop_basket WHERE (memberip='".$_SERVER['REMOTE_ADDR']."' OR basket ='".$basket."') AND status = '1'";
$ergebnis = mysqli_query($mysqli,$abfrage)
OR die("Error: $abfrage <br>".mysqli_error());
while($row = mysqli_fetch_object($ergebnis))
$price_sum2 = "$row->price_sum2";$abfrage = "SELECT SUM(price * paytime + setup) AS price_sum3 FROM ".$GLOBALS['$prefix']."shop_basket_domains WHERE (memberip='".$_SERVER['REMOTE_ADDR']."' OR basket ='".$basket."') AND status = '1'";
$ergebnis = mysqli_query($mysqli,$abfrage)
OR die("Error: $abfrage <br>".mysqli_error());
while($row = mysqli_fetch_object($ergebnis))
$price_sum3 = "$row->price_sum3";line 128 $price_sum = $price_sum1 + $price_sum2 + $price_sum3;
[Fri Nov 30 22:08:17.361620 2018] [fcgid:warn] [pid 7269] [client 178.200.69.235:49129] mod_fcgid: stderr: PHP Warning: A non-numeric value encountered in on line 129
was kann ich da machenund hier auch
line 44 $ref = mysqli_fetch_array(mysqli_query($mysqli, "SELECT refmember FROM ".$GLOBALS['$prefix']."member WHERE ip = '".mysqli_real_escape_string($mysqli, $_SERVER['REMOTE_ADDR'])."'"));
[Fri Nov 30 22:08:17.358655 2018] [fcgid:warn] [pid 7269] [client 178.200.69.235:49129] mod_fcgid: stderr: PHP Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in on line 44
bitte noch mall um hilfe weiß nicht mehr weiter
-
Beitrag von Jumpy Jr. ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: TE verwirrt mich. (). -
und was ist mit dem her
habe noch ein problem gefunden$abfrage = "SELECT COUNT(*) AS cartcheck FROM
".$GLOBALS['$prefix']."shop_basket WHERE
(memberip='".$_SERVER['REMOTE_ADDR']."' OR basket ='".$basket."') AND
status = '1'";
$ergebnis = mysqli_query($mysqli,$abfrage)
OR die("Error: $abfrage <br>".mysqli_error());
while($row = mysqli_fetch_object($ergebnis))
$cartcheck = "$row->cartcheck";$abfrage = "SELECT SUM(posts * price * paytime) AS price_sum1 FROM
".$GLOBALS['$prefix']."shop_basket WHERE
(memberip='".$_SERVER['REMOTE_ADDR']."' OR basket ='".$basket."') AND
status = '1'";
$ergebnis = mysqli_query($mysqli,$abfrage)
OR die("Error: $abfrage <br>".mysqli_error());
while($row = mysqli_fetch_object($ergebnis))
$price_sum1 = "$row->price_sum1";$abfrage = "SELECT SUM(posts * setup) AS price_sum2 FROM
".$GLOBALS['$prefix']."shop_basket WHERE
(memberip='".$_SERVER['REMOTE_ADDR']."' OR basket ='".$basket."') AND
status = '1'";
$ergebnis = mysqli_query($mysqli,$abfrage)
OR die("Error: $abfrage <br>".mysqli_error());
while($row = mysqli_fetch_object($ergebnis))
$price_sum2 = "$row->price_sum2";$abfrage = "SELECT SUM(price * paytime + setup) AS price_sum3 FROM
".$GLOBALS['$prefix']."shop_basket_domains WHERE
(memberip='".$_SERVER['REMOTE_ADDR']."' OR basket ='".$basket."') AND
status = '1'";
$ergebnis = mysqli_query($mysqli,$abfrage)
OR die("Error: $abfrage <br>".mysqli_error());
while($row = mysqli_fetch_object($ergebnis))
$price_sum3 = "$row->price_sum3";line 128 $price_sum = $price_sum1 + $price_sum2 + $price_sum3;
[Fri Nov 30 22:08:17.361620 2018] [fcgid:warn] [pid 7269] [client
178.200.69.235:49129] mod_fcgid: stderr: PHP Warning: A non-numeric
value encountered in on line 129
was kann ich da machenund hier auch
line 44 $ref = mysqli_fetch_array(mysqli_query($mysqli, "SELECT
refmember FROM ".$GLOBALS['$prefix']."member WHERE ip =
'".mysqli_real_escape_string($mysqli, $_SERVER['REMOTE_ADDR'])."'"));[Fri Nov 30 22:08:17.358655 2018] [fcgid:warn] [pid 7269] [client
178.200.69.235:49129] mod_fcgid: stderr: PHP Warning:
mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean
given in on line 44bitte noch mall um hilfe weiß nicht mehr weiter
-
Beitrag von Jumpy Jr. ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: TE verwirrt mich. (). -
der hier auch
line 44 $ref = mysqli_fetch_array(mysqli_query($mysqli, "SELECT
refmember FROM ".$GLOBALS['$prefix']."member WHERE ip =
'".mysqli_real_escape_string($mysqli, $_SERVER['REMOTE_ADDR'])."'"));[Fri Nov 30 22:08:17.358655 2018] [fcgid:warn] [pid 7269] [client
178.200.69.235:49129] mod_fcgid: stderr: PHP Warning:
mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean
given in on line 44so $ergebnis = mysqli_query($GLOBALS["$mysqli"],$abfrage)
geht es auch nicht kommt fehler[Sat Dec 01 08:38:35.827039 2018] [fcgid:warn] [pid 23563] [client 178.200.69.235:59238] mod_fcgid: stderr: PHP Recoverable fatal error: Object of class mysqli could not be converted to string in on line 106,
-
Es ist sehr schwer, wenn man deine Dateistruktur nicht kennt, dir zu helfen.
Am besten, du gibst deine Kontaktdaten bekannt. Dann kann man dir möglicherweise via Teamviewer helfen.Ich muss zugeben, ich hab mir den ganzen Beitrag und die Kommentare angeschaut und ich verstehe nicht,
was du jetzt gemacht hast und was du nicht gemacht hast. Es kamen sehr gute Lösungsansätze vor, aber mit
deinen Kommentaren komme ich nicht ganz klar. -
config sieht so aus
$mysqli = mysqli_connect($dbhost, $dbuname, $dbpass, $dbname) or die(mysqli_connect_error());
$GLOBALS['sql'] = $mysqli;$GLOBALS['$prefix'] = $dbprefix;
$GLOBALS['prefix'] = $dbprefix;habe noch ein probelm hier
[Sat Dec 01 12:10:32.916582 2018] [fcgid:warn] [pid 23563] [client 178.200.69.235:42880] mod_fcgid: stderr: PHP Warning: mysqli_query() expects parameter 1 to be mysqli, null given in on line 5
[Sat Dec 01 12:10:32.916615 2018] [fcgid:warn] [pid 23563] [client 178.200.69.235:42880] mod_fcgid: stderr: PHP Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in on line 5was ist hier falsch
$options = mysqli_fetch_array(mysqli_query($mysqli,"SELECT * FROM ".$GLOBALS['$prefix']."cms_options WHERE id = '1'")); -
Zuerst...bitte verwende den BB "Code" vom Forum hier. Dir zu helfen bringt Kopfschmerzen.
Zu deinen Problemchen....
$mysqli = mysqli_connect("$dbhost", "$dbuname", "$dbpass", "$dbname") or die(mysqli_connect_error());
$GLOBALS['sql'] = $mysqli;Das ist eine Variable zu viel. Was übergibst du den Connection Handler an $mysqli wenn du die $mysqli an eine andere weitergibst.
PHP$GLOBALS['sql'] = mysqli_connect("$dbhost", "$dbuname", "$dbpass", "$dbname") or die(mysqli_connect_error());
line 128 $price_sum = $price_sum1 + $price_sum2 + $price_sum3;
[Fri Nov 30 22:08:17.361620 2018] [fcgid:warn] [pid 7269] [client 178.200.69.235:49129] mod_fcgid: stderr: PHP Warning: A non-numeric value encountered in on line 129
Ich tippe das eines deiner Querys ein Problem hat, weswegen bei einer $sum Variable keine Nummer ausgegeben wird sondern wahrscheinlich NULL oder FALSE, dann kann man nicht Integer zusammenzählen.
Tipp: Überprüfe jede deiner 3 Querys einzeln und schaue was die ausgeben.line 44 $ref = mysqli_fetch_array(mysqli_query($mysqli, "SELECT refmember FROM ".$GLOBALS['$prefix']."member WHERE ip = '".mysqli_real_escape_string($mysqli, $_SERVER['REMOTE_ADDR'])."'"));
[Fri Nov 30 22:08:17.358655 2018] [fcgid:warn] [pid 7269] [client 178.200.69.235:49129] mod_fcgid: stderr: PHP Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in on line 44
Es ist schwer Probleme zu erkennen wenn du alles durcheinander in einen Codes wirfst. Mach es übersichtlicher und spar nicht ann sinnvollen Variablen. Der Fehler sagt aus, das mysql_result wieder boolean ausgibt...also zu 99.9% wird es false sein. Das ist nicht die Ausgabe welche mysqli_fetch_array() erwartet. Entweder ein Problem in deinen SQL oder in deiner Connection^^
so $ergebnis = mysqli_query($GLOBALS["$mysqli"],$abfrage)
geht es auch nicht kommt fehler[Sat Dec 01 08:38:35.827039 2018] [fcgid:warn] [pid 23563] [client 178.200.69.235:59238] mod_fcgid: stderr: PHP Recoverable fatal error: Object of class mysqli could not be converted to string in on line 106,
Grundlegendes: $GLOBALS ist eine Globale Array-Variable. Was du gemacht hast ist eine aktive Variable des Connection-Handler als Array gepackt. Das ist falsch da Array ein String ist. Sagt übringens auch der Fehler aus.Ändern in:
config sieht so aus
$mysqli = mysqli_connect($dbhost, $dbuname, $dbpass, $dbname) or die(mysqli_connect_error());
$GLOBALS['sql'] = $mysqli;$GLOBALS['$prefix'] = $dbprefix;
$GLOBALS['prefix'] = $dbprefix;habe noch ein probelm hier
[Sat Dec 01 12:10:32.916582 2018] [fcgid:warn] [pid 23563] [client 178.200.69.235:42880] mod_fcgid: stderr: PHP Warning: mysqli_query() expects parameter 1 to be mysqli, null given in on line 5
[Sat Dec 01 12:10:32.916615 2018] [fcgid:warn] [pid 23563] [client 178.200.69.235:42880] mod_fcgid: stderr: PHP Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in on line 5was ist hier falsch
$options = mysqli_fetch_array(mysqli_query($mysqli,"SELECT * FROM ".$GLOBALS['$prefix']."cms_options WHERE id = '1'"));Zu den Variablen in de Arrays habe ich dir schon was geschrieben.
Wie geht man vor um eine Lösung zu finden?
1) Fehlermeldung lesen
2) Fehlermeldung verstehen (mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in on line 5 = Bei der Function mysqli_fetch_array(), dem 1. Parameter [mysqli_query()] wird NULL zurück gegeben. Sprich mysqli_query() funktioniert nicht richtig.
3) Fehler beheben oder debuggen. Debuggen ist die Ausgabe und funktionsweise jeder möglichen Funktion zu testen. -
hey leute habe ein kleines problem und zwar hier
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /member/widgets/news.php on line 6
Code
Alles anzeigenline 6 Fehler $config = mysqli_fetch_array(mysqli_query($GLOBALS["sql"], "SELECT * FROM ".$GLOBALS['$prefix']."members_news WHERE active='1' AND nrelease < '".mysqli_real_escape_string($GLOBALS["sql"], $GLOBALS['$paneltimestamp'])."' AND (product = '0' OR product = 'ALL') ORDER BY id desc LIMIT 1")); if(!isset($config) OR $config == ''){ echo '<div class="alert alert-info" style="margin:10px;">'.LoadLang('#NONEWS#').'</div>'; }else{ $newsaa = mysqli_query($GLOBALS["sql"], "select * from ".$dbprefix."members_news WHERE active='1' AND nrelease < '".mysqli_real_escape_string($GLOBALS["sql"], $GLOBALS['$paneltimestamp'])."' AND (product = '0' OR product = 'ALL') ORDER BY `id` DESC LIMIT 1"); while($newsbb = mysqli_fetch_array($newsaa, MYSQLI_ASSOC)){ extract($newsbb); echo" <div style='text-align:left; padding-left:1%; padding-right:1%;'><strong>".$title."</strong></div> <br> <div style='width:100%; text-align:left; border-bottom:1px solid #ccc;'></div> <div style='padding:1%;'>".$text."</div> <div style='width:100%; text-align:left; border-top:1px solid #ccc;'></div> <br> <div style=' float:left; text-align:left; width:60%;'><strong>".LoadLang('#NEWS_WRITTEN#')."</strong> ".date("d.m.Y \- H:i", $date)." ".LoadLang('#CLOCK#')." <strong>".LoadLang('#NEWS_BY#')."</strong> ".$admin."</div> <div style=' float:left; text-align:right; width:40%;'><strong><a href='member.php?eP=memberNews'>".LoadLang('#NEWS_LAST10#')."</a></strong></div> "; } }
in der mysql ist alles in ordnung
SELECT * FROM `mySCP_members_news` WHERE 1
hoffe ihr könnt mir Helfen
-
Warum nutzt du nicht MySQL PDO sondern MySQLi eine total veraltete MySQL Sprache?
Hier mal ein Beispiel wie ich es mache, und ja, es ist noch lange nicht perfekt, aber besser als MySQLi
PHP
Alles anzeigen<?php require_once 'pages/global.php'; require_once 'lib/mysql.php'; require_once 'pages/header.php'; ?> <div class="container"> <div class="jumbotron"> <form id="eintragen" action="" method="post"> <p>Beachte bitte das dass Scammen auf Griefergames erlaubt ist. Wir erstellen nur eine Liste mit dem Spielernamen welcher wann wo und was gescammed hat!</p> <br> <div class="input-group"> <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span> <input type="text" class="form-control" name="spielername" id="spielername" required="required" placeholder="Spielername" pattern="^[a-zA-Z0-9.-_*]+( [a-zA-Z0-9.-_*]+)*$" /> </div> <br> <div class="input-group"> <span class="input-group-addon"><i class="glyphicon glyphicon-question-sign"></i></span> <select class="form-control" name="citybuild" id="citybuild" required="required"> <option selected disabled>Bitte Wählen</option> <option value="CB1">CB1</option> <option value="CB2">CB2</option> <option value="CB3">CB3</option> <option value="CB4">CB4</option> <option value="CB5">CB5</option> <option value="CB6">CB6</option> <option value="CB7">CB7</option> <option value="CB8">CB8</option> <option value="CB9">CB9</option> <option value="CB10">CB10</option> </select><br/><br /> </div> <br> <div class="input-group"> <span class="input-group-addon"><i class="glyphicon glyphicon-question-sign"></i></span> <input type="text" class="form-control" name="gegenstand" id="gegenstand" required="required" placeholder="Was hat er gescammed? Geld / Items / etc" pattern="^(?!\s)([a-zA-Z0-9 _.'"()!?&@]){1,}$" /><br/><br /> </div> <br> <div class="input-group"> <span class="input-group-addon"><i class="glyphicon glyphicon-film"></i></span> <input type="text" class="form-control" name="beweislink" id="beweislink" required="required" placeholder="Beweislink" pattern="^(http(s)?:\/\/)?((w){3}.)?youtu(be|.be)?(\.com)?\/.+" /><br/><br /> </div> <font color="red">Ist auf dem Video nicht zu erkennen, das dies ein Scam ist, wird der Eintrag entfernt!</font> <br> <br> <div class="input-group"> <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span> <input type="text" class="form-control" name="melder" id="melder" required="required" placeholder="Dein Spielername" pattern="^[a-zA-Z0-9.-_*]+( [a-zA-Z0-9.-_*]+)*$" /><br/><br /> </div> <br> <button type="submit" class="btn btn-danger" name="submit">Eintragen</button> <button type="button" class="btn btn-warning" onclick="myFunction()">Leeren</button><br><br> Deine IP Adresse <b><font color="red"><?php echo $ipaddress = $_SERVER['REMOTE_ADDR']; ?></font></b> wird zu unserem und deinen Schutz in unserer Datenbank gespeichert. Dies dient dazu dass wir Angriffe auf unserem Server besser zuordnen können und anzeigen können! </form> <script> function myFunction() { document.getElementById("eintragen").reset(); } function success() { swal({ title: "Erfolgreich!", text: "Danke das du dazu beiträgst Griefergames sicherer zu gestalten!", type: "success", }); } function error() { swal({ title: "Fehler!", text: "Es gibt ein Fehler mit der Datenbank. Bitte wende dich an dem Webmaster!", type: "error", }); } function blacklisted() { swal({ title: "Fehler!", text: "Dieser Spieler ist entweder ein Team Mitglied oder der Eigentümer dieser Seite. Diese können nicht gemeldet werden!", type: "error", }); } </script> <?php if(isset($_POST["submit"])) { try { $stmt = $dbh->prepare("SELECT * FROM blacklist WHERE spielername=?"); $stmt->execute([$_POST["spielername"]]); $user = $stmt->fetch(); if ($user) { echo '<script type="text/javascript">', 'blacklisted();', '</script>'; } else { $sql = "INSERT INTO scammer (`spielername`, `citybuild`, `gegenstand`, `beweislink`, `melder`, ip) VALUES ('".htmlspecialchars($_POST["spielername"])."', '".$_POST["citybuild"]."', '".htmlspecialchars($_POST["gegenstand"])."', '".$_POST["beweislink"]."', '".htmlspecialchars($_POST["melder"])."', '$ipaddress');"; if ($dbh->query($sql)) { echo '<script type="text/javascript">', 'success();', '</script>'; } else { echo '<script type="text/javascript">', 'error();', '</script>'; } $dbh = null; } } catch(PDOException $e) { echo $e->getMessage(); } $dbh = null; } ?> </div> </div> <?php require_once 'pages/footer.php'; ?>
-
es ist noch lange nicht perfekt
Da hast du wohl recht. Alleine der Fakt das du 1x prepared statements verwendest und beim nächsten mal wieder nicht
$stmt = $dbh->prepare("SELECT * FROM blacklist WHERE spielername=?");
$stmt->execute([$_POST["spielername"]]);$sql = "INSERT INTO scammer (`spielername`, `citybuild`, `gegenstand`, `beweislink`, `melder`, ip) VALUES ('".htmlspecialchars($_POST["spielername"])."', '".$_POST["citybuild"]."', '".htmlspecialchars($_POST["gegenstand"])."', '".$_POST["beweislink"]."', '".htmlspecialchars($_POST["melder"])."', '$ipaddress');"
------Du solltest wirklich Error checks einbauen. Deine Query hat wahrscheinlich einen Fehler drin (
-
hat sich erledigt habe den fehler gefunden
-
Da hast du wohl recht. Alleine der Fakt das du 1x prepared statements verwendest und beim nächsten mal wieder nicht
------
Du solltest wirklich Error checks einbauen. Deine Query hat wahrscheinlich einen Fehler drin (
Keinen einzigen Das Script wurde eine gute Zeit genutzt.